home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / basic / ezw1v30a.zip / EZWINDO.DOC < prev    next >
Text File  |  1991-06-03  |  20KB  |  393 lines

  1.  
  2.  
  3. ╔═══▒▒▒▒▒▒▒▒▒▒▒▒ Welcome to ▒▒▒▒▒▒▒▒▒▒▒▒▒════╗
  4. ║                                            ║
  5. ║    ┌──────────────────────────────────┐    ║▒▒
  6. ║    │ EZ-WINDOWS Pulldown Menu System  │    ║▒▒
  7. ║    └──────────────────────────────────┘    ║▒▒
  8. ║               Version 3.0                  ║▒▒
  9. ║                                            ║▒▒
  10. ║ A complete mouseable Pulldown Menu System  ║▒▒
  11. ║                                            ║▒▒
  12. ║                    ┌───────────────────────╨──────────────────┐
  13. ╚░░░░░░░▒░░░░░░░░░░░░│                                          │  
  14.    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│                  For...                  │▒▒
  15.                      │                                          │▒▒
  16.                      │   Microsoft QuickBASIC 4.5               │▒▒
  17.                      │                                          │▒▒
  18.                      │   Microsoft Professional Development     │▒▒
  19.       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│   System 7.0                             │▒▒
  20.       █              │                                          │▒▒
  21.       █              └──────────────────────────────────────────┘▒▒
  22.       █                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  23.       █  StrongSoft Engineering             █▒▒
  24.       █                                     █▒▒
  25.       █  3155 SW 178th Ave                  █▒▒
  26.       █  Aloha, OR 97006                    █▒▒
  27.       █  (503) 649-7251                     █▒▒
  28.       █                                     █▒▒
  29.       █  Documentation written and prepared █▒▒
  30.       █  by John C. Strong                  █▒▒
  31.       █                                     █▒▒
  32.       █                                     █▒▒ 
  33.       █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█▒▒
  34.          ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  35.  
  36.  
  37. ═══════════════════════════════════════════════════════════════════════════════
  38.  
  39. A few customer comments --
  40.  
  41.         "Terrific, a beautiful piece of programming!" - Duiven, Holland
  42.  
  43.     "I am very impressed with EZ-WINDOWS.  It is exactly what
  44.      I was looking for..."   -   Ontario, Canada
  45.  
  46.     "It's incredible, I just love your routines to death...I'm going
  47.          to impress the hell out of those smart 'C' programmers..."
  48.          - Houston, Texas
  49.  
  50. ═══════════════════════════════════════════════════════════════════════════════
  51.  
  52. OVERVIEW
  53.  
  54.      This routine is intended to allow a programmer to present the user
  55. with options in an organized and esthetic way.  The PullDown Menu System was
  56. indeed modeled after the very pulldown menu used in the QuickBASIC 4.x
  57. environment.  
  58.  
  59.      I wrote this routine out of frustration, actually.  I didn't want to
  60. take the time to write a pulldown menu routine, yet none of the commercially
  61. available libraries offered the options that I needed.  So I just sat down
  62. one day and wrote it (over several days), and here it is.
  63.  
  64.      The Pulldown Menu System is very easy to integrate in a QB program,
  65. yet offers all the options someone might expect in a commercial software
  66. package.  To use this routine in a program, all that is required is a few
  67. arrays containing formatting information for the pulldown menu and an array
  68. containing the actual text used.  Then a simple CALL statement will take care
  69. of the rest!  Don't worry -- loading the arrays required for the routine is
  70. very straightforward and uncomplicated, and the results are definitely worth
  71. it!
  72.  
  73.      The advantages of using this routine are both numerous and obvious, but
  74. there is one disadvantage:  the code size is rather large.  But the programs
  75. that need such a pulldown menu routine are the ones that need to present a
  76. multitude of options to the user -- such a program will naturally be large
  77. anyway, so the relative code size of the Pulldown Menu System shouldn't make
  78. a big difference.
  79.  
  80.  
  81. REQUIREMENTS
  82.  
  83.      The Pulldown Menu System requires QuickBASIC 4.5 compiler.  It will also
  84. work with QB40, but you'll need to purchase & recompile the source code in
  85. QB40.  I think the better investment would be to buy QB45!  But I don't
  86. know if it will work with versions eariler than 4.0.  I believe earlier
  87. versions of QuickBASIC modify the stack a bit differently when passing
  88. parameters to assembler routines, which would definitely cause problems.  So
  89. if you don't have version 4.0 or later, you would be doing yourself a great
  90. favor by upgrading if for no other reason than to enjoy the benefits of a
  91. superior programming environment provided by QB45 or PDS 7.0.
  92.  
  93.      You can use this routine inside the QB environment or in a compiled
  94. .EXE file.  Two Quick Libraries are provided for program development inside
  95. QB and two libraries are provided for compiled programs.    
  96.  
  97.  
  98. USING THE PULLDOWN MENU SYSTEM
  99.  
  100.     Using this routine requires the dimensioning and loading of several
  101. arrays and the actual call to the routine.  When calling the routine, several
  102. conventions must be observed:
  103.  
  104.      1)    All non-string variable arguments must be the integer type,
  105.            denoted by the percent sign %, i.e., ITEMSLCT%.  Alternativ-
  106.            ely, the DEFINT statement can be used at the beginning of
  107.            your program which will take care of this automatically.  You
  108.            can also pass literals instead of integer variables, but only
  109.            for arguments that are not modified by the routine.  The best
  110.            thing to do is just pass variables, which requires less stack
  111.            space than literals.
  112.  
  113.      2)    The arguments passed must be in proper order or the routine
  114.            will not work, possibly locking up your system.
  115.  
  116.      3)    All arguments must be present or the routine will not work,
  117.            possibly locking up your system.
  118.  
  119.  
  120. SPECIFYING COLORS AS ATTRIBUTES
  121.  
  122.           The Pulldown Menu System requires that colors be passed
  123.      as attributes instead of foreground and background colors.  This
  124.      not only contributes to consistency between the routines internal
  125.      to the library but also reduces the number of arguments needing to
  126.      be passed.
  127.  
  128.           So what is an attribute?  An attribute is a single byte,
  129.      containing a number between 0 and 255, that tells DOS 
  130.      what foreground and background color to use.  Every character
  131.      on the screen has its own attribute byte in addition to the
  132.      character byte, and the attribute and character byte sit together
  133.      in video memory.  This is why it is fast and efficient to use
  134.      attributes.
  135.  
  136.           An attribute is the background color, multiplied by sixteen,
  137.      plus the foreground color.  In hexadecimal, the background is the
  138.      high nibble and the foreground is the low nibble.  To simplify 
  139.      things, here is a table that yields the attribute for a given
  140.      background color and foreground color.  Note that background colors
  141.      go from black to white.  You can use higher numbered colors
  142.      for a background but the text will be flashing.
  143.  
  144.                                    BACKGROUND COLOR   
  145.                                     
  146.                   black  blue  green   cyan   red  magenta  brown  white
  147.                     0      1      2      3      4      5      6      7
  148.                  |-----|------|------|------|------|------|------|------| 
  149.      black     0 |  0  |  16  |  32  |  48  |  64  |  80  |  96  |  112 |
  150.                  |-----|------|------|------|------|------|------|------|
  151.      blue      1 |  1  |  17  |  33  |  49  |  65  |  81  |  97  |  113 |
  152.                  |-----|------|------|------|------|------|------|------|
  153.      green     2 |  2  |  18  |  34  |  50  |  66  |  82  |  98  |  114 |
  154.  F               |-----|------|------|------|------|------|------|------|
  155.  O   cyan      3 |  3  |  19  |  35  |  51  |  67  |  83  |  99  |  115 |
  156.  R               |-----|------|------|------|------|------|------|------|
  157.  E   red       4 |  4  |  20  |  36  |  52  |  68  |  84  |  100 |  116 |
  158.  G               |-----|------|------|------|------|------|------|------|
  159.  R   magenta   5 |  5  |  21  |  37  |  53  |  69  |  85  |  101 |  117 |
  160.  O               |-----|------|------|------|------|-----